WS-BPEL vs WS-CDL
Words in Black are Quoted from
http://www.ebpml.org/ws_-_cdl.htm
1. CDL provides a definition of the information formats being exchanged by ALL participants, BPEL provides the information formats exchanged by one participant. A BPEL process interacts with multiple partner services; BPEL defines the information formats exchanged with partner services.
2. CDL provides the global message exchange between participants without a specific point of view, BPEL provides the message exchange from the point of view of one participant. A BPEL process stands on the point of view of the clients who are going to use this BPEL process.
3. CDL provides "reactive" rules that are used by each participant to compute the state of the choreography and infer which message exchange will/can happen next. BPEL specifies "active" rules that are executed to infer what to do next, once the rule is computed, the orchestration run-time executes the corresponding activity(ies). A BPEL process adopts imperative programming paradigm. It actively indicates the sequence of operations.
4. BPEL can describe two types of choreographies: master/slave and unilateral. Master/Slave is the case where the orchestrator controls everything and all other participants interact only with him and not between themselves (true peer-to-peer fashion). The unilateral case, is when every participant decides to describe its own view of the choreography. The true peer-to-peer fashion means all participents including the process itself are interacting with each other. In BPEL, partner services are peers to the process in the sense that they can communicate with each other synchronously or asynchronously. The enabling mechanism is WS-addressing. Each peer has an endpoint reference. In the real world, these two types of choreographies are rare. In addition, if you are a "master" you may not want to publicly disclose all your internal behavior just because you need a choreography definition. Bottom line, using BPEL to express choreographies is a very bad idea, it does not work often and when it works it is awkward. A very impressive argument! So what is the right direction of BPEL? Extending the functionality of existing WSDL services?
http://www.ebpml.org/ws_-_cdl.htm
1. CDL provides a definition of the information formats being exchanged by ALL participants, BPEL provides the information formats exchanged by one participant. A BPEL process interacts with multiple partner services; BPEL defines the information formats exchanged with partner services.
2. CDL provides the global message exchange between participants without a specific point of view, BPEL provides the message exchange from the point of view of one participant. A BPEL process stands on the point of view of the clients who are going to use this BPEL process.
3. CDL provides "reactive" rules that are used by each participant to compute the state of the choreography and infer which message exchange will/can happen next. BPEL specifies "active" rules that are executed to infer what to do next, once the rule is computed, the orchestration run-time executes the corresponding activity(ies). A BPEL process adopts imperative programming paradigm. It actively indicates the sequence of operations.
4. BPEL can describe two types of choreographies: master/slave and unilateral. Master/Slave is the case where the orchestrator controls everything and all other participants interact only with him and not between themselves (true peer-to-peer fashion). The unilateral case, is when every participant decides to describe its own view of the choreography. The true peer-to-peer fashion means all participents including the process itself are interacting with each other. In BPEL, partner services are peers to the process in the sense that they can communicate with each other synchronously or asynchronously. The enabling mechanism is WS-addressing. Each peer has an endpoint reference. In the real world, these two types of choreographies are rare. In addition, if you are a "master" you may not want to publicly disclose all your internal behavior just because you need a choreography definition. Bottom line, using BPEL to express choreographies is a very bad idea, it does not work often and when it works it is awkward. A very impressive argument! So what is the right direction of BPEL? Extending the functionality of existing WSDL services?